#include<stdio.h>
#define N 1000000
void sort(int a[N],int min,int max)
{
	int find(int a[N],int min,int max);
	int point;
	if(min<max)
	{
		point=find(a,min,max);
		sort(a,point+1,max);
		sort(a,min,point-1);
	}
}
int swap(int a[N],int x,int y)
{
	int t;
	t=a[x];
	a[x]=a[y];
	a[y]=t;
}
int find(int a[N],int min,int max)
{
	int i,j,key;
	key=a[min];
	j=max;i=min;
	while(i<j)
	{
		while(i<j&&key<=a[j])
			j--;
		if(i!=j)
			swap(a,i,j);
		while(i<j&&key>=a[i])
			i++;
		if(i!=j)
			swap(a,i,j);
	}
	return j;
}
int main()
{
	int a[N],n,i,j;
	while(scanf("%d",&n)!=EOF)
	{
		//scanf("%d",&n);
		
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);
			
			
		sort(a,0,n-1);
		
		
		for(i=0;i<n-1;i++)
			printf("%d ",a[i]);
		printf("%d\n",a[n-1]);
	}
	return 0;
}
